from datetime import timedelta

import logging
from redis import StrictRedis


# 设置配置类信息
class Config(object):

    # 设置调试模式
    DEBUG = True

    # 设置秘钥
    SECRET_KEY = "ASDSAD"

    # 创建redis配置信息
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # 设置数据库配置信息
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/flask_project"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 当视图函数结束的时候自动提交一次会话
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True

    # session配置信息
    # 存储信息
    SESSION_TYPE = "redis"
    # redis服务器
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    # 签名存储信息
    SESSION_USE_SIGNER = True
    # 默认存储时间(默认是31天)
    PERMANENT_SESSION_LIFETIME = timedelta(days=2)

    # 默认的LEVELNAME就是DEBUG级别
    LEVELNAME = logging.DEBUG

# 开发模式配置信息
class DevelopConfig(Config):
    pass


# 生产模式配置信息
class ProductConfig(Config):
    DEBUG = False
    LEVELNAME = logging.ERROR


# 测试模式配置信息
class TestConfig(Config):
    TESTING = True

# 提供配置类的访问入口
config_dict = {
    "develop" : DevelopConfig,
    "product" : ProductConfig,
    "test" : TestConfig
}